package com.dy.design_pattern_study.memento_pattern.dome2;

/**
 * @CreateBy zhangdingyi
 * @Date 2023-04-10
 * @Content
 */
public class client {
    public static void main(String[] args) {
        //发起人 初始化状态
        Originator o = new Originator();
        o.setState("On");
        o.show();

        //保存状态 -管理者调用备忘录保存初始状态
        Caretaker c = new Caretaker();
        c.setMemento(o.createMemento());

        //改变属性状态 发起人修改状态
        o.setState("Off");
        o.show();

        //恢复初始状态 发起人恢复管理者在备忘录保存的初始状态
        o.setMemento(c.getMemento());
        o.show();

        /*
            这里的话，就像是管理者在 备忘录中设置对应的状态
            然后发起人，在改变状态之后
            可以通过管理者在 备忘录中的找到对应的备忘录状态
            并恢复
         */
    }
}
